約 6,588,134 件
https://w.atwiki.jp/wiki7_az/pages/24.html
Windows Tomcat をダウンロードする。 ダウンロードした jakarta-tomcat-5.0.28.exe を実行して、Tomcat をインストールする。パスワードの入力以外はデフォルトのままで進む。 インストールディレクトリの tomcat5.exe を実行して、起動する。 Linux J2SE v 1.4.2_11 SDK をダウンロードする。 JDK をインストールする。 $ chmod 755 j2sdk-1_4_2_11-linux-i586-rpm.bin $ ./j2sdk-1_4_2_11-linux-i586-rpm.bin # rpm -ivh j2sdk-1_4_2_11-linux-i586.rpm Tomcat をダウンロードする。 Tomcat をインストールする。 $ tar xfvzp jakarta-tomcat-5.0.28.tar.gz # mv jakarta-tomcat-5.0.28 /usr/local/tomcat-5.0.28 # ln -s /usr/local/tomcat-5.0.28 /usr/local/tomcat # useradd -d /var/empty/tomcat -s /sbin/nologin tomcat # chown -R tomcat tomcat /usr/local/tomcat-5.0.28 起動スクリプトを作成する # vi /etc/init.d/tomcat #!/bin/sh # Startup script for Tomcat5.5 # # chkconfig 2345 80 15 # description Tomcat5.5 # Settings test -r /etc/rc.d/init.d/functions . /etc/rc.d/init.d/functions CATALINA_HOME=/usr/local/tomcat # Scripts case "$1" in start) echo "Tomcat start..." $CATALINA_HOME/bin/startup.sh if [ $? = 0 ] ; then echo_success else echo_failure fi echo ;; stop) echo "Tomcat stop..." $CATALINA_HOME/bin/shutdown.sh if [ $? = 0 ] ; then echo_success else echo_failure fi echo ;; restart) $0 stop $APACHE stop $0 start $APACHE start ;; reload) $0 stop $0 start ;; version) $CATALINA_HOME/bin/catalina.sh version ;; *) echo "Usage tomcat {start|stop|restart|reload|version}" exit 1 esac exit 0 # chmod 755 /etc/init.d/tomcat # chkconfig --add tomcat # chkconfig tomcat on catalina.sh を編集する。 # vi /usr/local/tomcat/bin/catalina.sh CATALINA_HOME=/usr/local/tomcat CATALINA_BASE=$CATALINA_HOME CATALINA_TMPDIR=$CATALINA_HOME/temp JAVA_HOME=/usr/java/j2sdk1.4.2_11 JRE_HOME=$JAVA_HOME
https://w.atwiki.jp/skmt200x/pages/98.html
1.仕様調査編(6.x)ディレクトリ構成/ bin/ conf/Tomcatのライブラリパス Tomcatのユーザ定義XMLファイル logs/ webaaps サービス実行ファイル Deployer(クライアント配備ツール)Deployerのシステム要件 Managerアプリケーション Realm(ユーザ名・パスワードDB)によるセキュリティ実装 セキュリティマネージャ JNDI Resources JNDI Datasource クラスローダの仕様 Jasper 2 JSP Engine SSLの設定 SSI/CGI プロキシ MBean Descriptor Default Servlet Reference クラスタリング 負荷分散 Connctor 監視と管理 ロギング APR based Native library Virtual Host Advanced IO Additional Components A-1.簡単構築編目的 前提環境・ソフトウェアバージョン(OS、Kernel、Apache、JDK、Tomcat) 概要 ダウンロードサイトから各パッケージの入手 JDKのインストールおよびセットアップ Tomcatのインストール ApacheとTomcatの設定 B.標準の構成(6.x)についてXML宣言 Apache Software Foaundation のライセンス表示 Server要素APR Lifecycle Listener Jasper Listener JRE Memory Leak Prevention Listener Server Lifecycle Listener Global Resources Lifecycle Listener GlobalNamingResources要素Resource要素(UserDatabaseリソース) Service要素Executor要素 Connector要素(HTTP/1.1 TCP8080ポート用) Connector要素(HTTP/1.1 共有スレッドプール有効 TCP8080ポート用)※無効化 Connector要素(HTTP/1.1 SSL有効 TCP8443ポート用) ※無効化 Connector要素(AJP 1.3 TCP8009ポート用) Engine要素Cluster要素 ※無効化 Request Dumper Valve ※無効化 Realm要素 Host要素Single Sign On Valve ※無効化 Access Log Valve ※無効化 TOPへ編集 最終更新日 [2011-04-12]
https://w.atwiki.jp/usonx/pages/16.html
シェル上からディレクトリを開く シェル上から現在のディレクトリをGUIで開きたい場合 cygstart . bashrcテンプレ # base-files version 3.7-1 # To pick up the latest recommended .bashrc content, # look in /etc/defaults/etc/skel/.bashrc # Modifying /etc/skel/.bashrc directly will prevent # setup from updating it. # The copy in your home directory (~/.bashrc) is yours, please # feel free to customise it to create a shell # environment to your liking. If you feel a change # would be benificial to all, please feel free to send # a patch to the cygwin mailing list. # User dependent .bashrc file # Shell Options # ############# # See man bash for more options... # Don t wait for job termination notification # set -o notify # Don t use ^D to exit # set -o ignoreeof # Use case-insensitive filename globbing # shopt -s nocaseglob # Make bash append rather than overwrite the history on disk # shopt -s histappend # When changing directory small typos can be ignored by bash # for example, cd /vr/lgo/apaache would find /var/log/apache # shopt -s cdspell # Completion options # ################## # These completion tuning parameters change the default behavior of bash_completion # Define to access remotely checked-out files over passwordless ssh for CVS # COMP_CVS_REMOTE=1 # Define to avoid stripping description in --option=description of ./configure --help # COMP_CONFIGURE_HINTS=1 # Define to avoid flattening internal contents of tar files # COMP_TAR_INTERNAL_PATHS=1 # If this shell is interactive, turn on programmable completion enhancements. # Any completions you add in ~/.bash_completion are sourced last. # case $- in # *i*) [[ -f /etc/bash_completion ]] . /etc/bash_completion ;; # esac # History Options # ############### # Don t put duplicate lines in the history. # export HISTCONTROL="ignoredups" # Ignore some controlling instructions # export HISTIGNORE="[ ]* bg fg exit" # Whenever displaying the prompt, write the previous line to disk # export PROMPT_COMMAND="history -a" # Aliases # ####### # Some example alias instructions # If these are enabled they will be used instead of any instructions # they may mask. For example, alias rm= rm -i will mask the rm # application. To override the alias instruction use a \ before, ie # \rm will call the real rm not the alias. # Interactive operation... # alias rm= rm -i # alias cp= cp -i # alias mv= mv -i # Default to human readable figures # alias df= df -h # alias du= du -h # Misc ) # alias less= less -r # raw control characters # alias whence= type -a # where, of a sort # alias grep= grep --color # show differences in colour # Some shortcuts for different directory listings alias ls= ls -hF --color=tty # classify files in colour # alias dir= ls --color=auto --format=vertical # alias vdir= ls --color=auto --format=long # alias ll= ls -l # long list # alias la= ls -A # all but . and .. # alias l= ls -CF # alias xyzzy= D /tool/Editer/xyzzy/xyzzy.exe # Functions # ######### # Some example functions # function settitle() { echo -ne "\e]2;$@\a\e]1;$@\a"; } bash_profile # base-files version 3.7-1 # To pick up the latest recommended .bash_profile content, # look in /etc/defaults/etc/skel/.bash_profile # Modifying /etc/skel/.bash_profile directly will prevent # setup from updating it. # The copy in your home directory (~/.bash_profile) is yours, please # feel free to customise it to create a shell # environment to your liking. If you feel a change # would be benifitial to all, please feel free to send # a patch to the cygwin mailing list. # ~/.bash_profile executed by bash for login shells. # source the system wide bashrc if it exists if [ -e /etc/bash.bashrc ] ; then source /etc/bash.bashrc fi # source the users bashrc if it exists if [ -e "${HOME}/.bashrc" ] ; then source "${HOME}/.bashrc" fi # Set PATH so it includes user s private bin if it exists # if [ -d "${HOME}/bin" ] ; then # PATH=${HOME}/bin ${PATH} # fi # Set MANPATH so it includes users private man if it exists # if [ -d "${HOME}/man" ]; then # MANPATH=${HOME}/man ${MANPATH} # fi # Set INFOPATH so it includes users private info if it exists # if [ -d "${HOME}/info" ]; then # INFOPATH=${HOME}/info ${INFOPATH} # fi
https://w.atwiki.jp/maimix/pages/29.html
1.静的なファイル(HTMLファイルや画像ファイル)をより高速なApacheが処理し、 動的なページ(サーブレット、JSP)をTomcatが処理することによって効率のよいレスポンスが実現できる。 2.ApacheのHTTPサーバとしての様々な機能を利用できるようになる。 3.1台のWebサーバに対して複数のTomcatのインスタンスを割り当てることによって負荷分散を実現できる。
https://w.atwiki.jp/assassin193/pages/17.html
連携 ■conf/httpd.conf LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so Include conf/extra/httpd-proxy.conf ■conf/extra/httpd-proxy.conf Location / ProxyPass ajp //localhost 8009/ /Location ■tomcatの8080番ポートをコメント
https://w.atwiki.jp/flakwing/pages/16.html
ホームページ http //tomcat.apache.org/ 設定 設定ファイル(server.xml)の位置 通常は{Tomcatのインストールフォルダ}/conf/server.xmlにあります。 しかし、設定によっては{Tomcatのインストールフォルダ}/conf/Catalina/localhost/{コンテキストパス}.xmlにアプリケーションごとに分割されているかもしれません。 また、Eclipse WTPからTomcatを起動した場合、これらのProject ExplorerビューにあるServerプロジェクト配下のserver.xmlが使用されます。 コネクション・プーリング 書式 Context docBase="コンテキストパス" Resource auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" maxActive="20" maxIdle="10" maxWait="-1" name="リソース名" url="JDBC接続URL" username="ユーザ名" password="パスワード"/ /Context データソースレルム 書式 Context docBase="コンテキストパス" Realm className="org.apache.catalina.realm.DataSourceRealm" dataSourceName="リソース名" debug="99" localDataSource="true" userTable="ユーザ表" userRoleTable="ロール表" userNameCol="ユーザID列" userCredCol="パスワード列" roleNameCol="ロール列" digest="ダイジェスト・アルゴリズム"/ /Context Tips 平文のパスワードからダイジェスト値を計算する その1 引用元 Tomcat5 サーブレット/JSP コンテナ - レルム設定方法 (The Ja-Jakarta Project) ダイジェストパスワードを動的に計算する必要のあるアプリケーションを作成している場合は、 org.apache.catalina.realm.RealmBaseクラスの staticメソッドであるDigest()に平文のパスワードとダイジェストアルゴリズム名を引数として渡して呼び出します。 このメソッドはダイジェストパスワードを返します。 コマンドラインからダイジェストパスワードを計算したい場合には次のコマンドを単純に実行します。 java org.apache.catalina.realm.RealmBase -a {algorithm} {cleartext-password} 平文のパスワードからダイジェスト値を計算する その2 Tomcatをzip版でインストールした場合には、binディレクトリに digest.bat, digest.shがあるので、それを使用できます。
https://w.atwiki.jp/naobe/pages/42.html
OpenSourceに戻る バージョンと標準 Tomcatバージョン servlet jsp 6.0 2.4 2.0 5.5 2.3 2.0 ソースプログラム http //tomcat.apache.org/download-60.cgi Tomcat6.0.3.5ソース解読 苦労しました。大筋は合っていると思う。 Tomcat解読.xls 起動 Bootstrap#startからCatalina#startを呼び出す。Server#startを実行し、Server.xmlで設定したポート番号でsocketのstreamからreadする。readした文字が"SHUTDOWN"なら停止処理を実行する。 server.xmlからデフォルトのポート番号は、8005になる。 Server port="8005" shutdown="SHUTDOWN" public class Catalina extends Embedded { public void start() { ((Lifecycle) getServer()).start(); if (await) { await(); stop(); } public void await() { getServer().await(); } public final class StandardServer public void await() { awaitSocket = new ServerSocket(port, 1, InetAddress.getByName("localhost")); while (!stopAwait) { ServerSocket serverSocket = awaitSocket; Socket socket = null; StringBuilder command = new StringBuilder(); try { InputStream stream = null; socket = serverSocket.accept(); socket.setSoTimeout(10 * 1000); // Ten seconds stream = socket.getInputStream(); // Read a set of characters from the socket int expected = 1024; // Cut off to avoid DoS attack while (expected shutdown.length()) { if (random == null) random = new Random(); expected += (random.nextInt() % 1024); } while (expected 0) { int ch = -1; try { ch = stream.read(); } catch (IOException e) { log.warn("StandardServer.await read ", e); ch = -1; } if (ch 32) // Control character or EOF terminates loop break; command.append((char) ch); expected--; } // Match against our command string boolean match = command.toString().equals(shutdown); if (match) { break; } } 停止 Bootstrap#stopServerからCatalina#stopServerを呼び出す。 ソースは以下になっている。Serverのポート番号からソケットを作成して、"SHUTDOWN"という文字を送信している。 public class Catalina extends Embedded { public void stopServer(String[] arguments) { ・・・・ s = getServer(); try { if (s.getPort() 0) { String hostAddress = InetAddress.getByName("localhost").getHostAddress(); Socket socket = new Socket(hostAddress, getServer().getPort()); OutputStream stream = socket.getOutputStream(); String shutdown = s.getShutdown();// "SHUTDOWN" for (int i = 0; i shutdown.length(); i++) stream.write(shutdown.charAt(i)); stream.flush(); stream.close(); socket.close(); } else { log.error(sm.getString("catalina.stopServer")); System.exit(1); } } catch (IOException e) { log.error("Catalina.stop ", e); System.exit(1); } レルム レルムとは、ユーザ、パスワード、ロールをまとめたもの。ユーザDBのエントリに相当する。UserDatabaseRealm、JDBCレルム、DataSourceレルム、JNDIレルムがある。web.xmlのセキュリティ設定で制限されたURLをアクセスするときに認証するためのユーザ、パスワード、ロールを定義したもの。web.xmlでは、URLとHTTPメソッドに対してロールを割り当てる。 UserDatabaseRealm JNDIを介してアクセスするがデフォルトでは$CATALINA_BASE/conf/tomcat-user.xmlを使う。 $CATALINA_BASE/conf/server.xmlに以下を設定する。 Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/ Engine 直下に設定すると、Tomcat内の全ての仮想ホストで共通の設定になる Host 直下に設定すると、仮想ホスト内で共通の設定になる。 Context 直下に設定すると、WEBアプリケーション内で共通の設定になる。 web.xmlで制限をかけたURLにアクセスすると、認証(BASIC,DIGEST,FORM)を行う。 認証に成功すると、ユーザを内部に保管して、指定したURLに移動する。 BASIC認証の場合は、ブラウザを閉じる(TCPコネクションclose ?)までユーザをキャッシュする(認証を行わない)。 FORM認証の場合は、セッションタイムアウトになるまでユーザをキャッシュする。キャッシュされたユーザはセッションの直列化をまたがって保存されない(APサーバ停止によるセッションの保管のことでしょう)。 tomcat-users.xmlの設定例 tomcat-users user name="tomcat" password="tomcat" roles="tomcat" / user name="role1" password="tomcat" roles="role1" / user name="both" password="tomcat" roles="tomcat,role1" / /tomcat-users データソース Tomcat6.Xの内部データソースは、org.apache.tomcat.dbcp.dbcp.BasicDataSource。これは、org.apache.commons.dbcp.BasicDataSourceと同じもの。 http //www.flsi.co.jp/Java_text/vol140.htm 参照 設定 項目 内容 親を優先とするクラスローダの移譲 web.xmlのcontextのdelegate属性にtrueを設定する セッションタイムアウト conf/web.xmlのsession-configタグを修正するとすべてのWEBアプリケーションに影響する。WEBアプリケーションのweb.xmlを修正すると、WEBアプリケーションのみ影響する。単位は分。 サーバ化 【参考】 http //miyazaki.ddo.jp/linuxserver/tomcatautostart.html http //www.atmarkit.co.jp/fjava/rensai4/safetomcat_01/safetomcat_01_1.html 【環境】 tomcat バージョン:6.0 OS CentOS 5.5 専用ユーザ作成 #adduser -d tomcatインストールディレクトリ -s /sbin/nologin tomcat 所有者の変更 #chown -R tomcat tomcatインストールディレクトリ #chmod -R g-r,g-w,g-x tomcatインストールディレクトリ JAVA_HOME設定 $TOMCAT_INSTALL/binsetenv.shに以下を設定 JAVA_HOME=JAVAホームディレクトリ JRE_HOME=JAVAホームディレクトリ commons-daemon commons-daemon概要 Javaは、signalに対応していないため、サーバの急なシャットダウンなどのタイミングでサーバリソース(TCP接続、DBとのコネクションなど)の正規の終結処理ができない。CとJavaを組み合わせてこれに対応したもの。UNIXとWindowsで異なるモジュールを提供する。UNIX版は、jsvc。 commons-daemonのインストール http //commons.apache.org/daemon/download_daemon.cgi から以下をダウンロード commons-daemon-1.0.5-src.tar.gz commons-daemon-1.0.5.jar commons-daemon-1.0.5-src.tar.gzを展開し以下を実行。 [hoge@athlon4 tmp]$ cd commons-daemon-1.0.5-src [hoge@athlon4 commons-daemon-1.0.5-src]$ cd src/ [hoge@athlon4 src]$ cd native/ [hoge@athlon4 native]$ cd unix/ [hoge@athlon4 unix]$ sh support/buildconf.sh [hoge@athlon4 unix]$ ./configure *** Current host *** checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking cached host system type... ok *** C-Language compilation tools *** checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ANSI C... none needed checking for ranlib... ranlib checking for strip... strip *** Host support *** checking C flags dependant on host system type... ok *** Java compilation tools *** checking for sablevm... NONE checking for kaffe... NONE checking for javac... /usr/java/jdk1.6.0_21/bin/javac /usr/java/jdk1.6.0_21/bin/javac checking wether the Java compiler (/usr/java/jdk1.6.0_21/bin/javac) works... yes checking for jar... /usr/java/jdk1.6.0_21/bin/jar gcc flags added checking for cap_init in -lcap... yes *** Writing output files *** configure creating ./config.status config.status creating Makefile config.status creating Makedefs config.status creating native/Makefile *** All done *** Now you can issue "make" [hoge@athlon4 unix]$ make clean (cd native; make clean) make[1] ディレクトリ `/home/hoge/tmp/commons-daemon-1.0.5-src/src/native/unix/native に入ります rm -f arguments.o debug.o dso-dlfcn.o dso-dyld.o help.o home.o java.o location.o replace.o locks.o signals.o ../jsvc jsvc-unix.o libservice.a make[1] ディレクトリ `/home/hoge/tmp/commons-daemon-1.0.5-src/src/native/unix/native から出ます [hoge@athlon4 unix]$ make (cd native; make all) make[1] ディレクトリ `/home/hoge/tmp/commons-daemon-1.0.5-src/src/native/unix/native に入ります gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c jsvc-unix.c -o jsvc-unix.o gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c arguments.c -o arguments.o gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c debug.c -o debug.o gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c dso-dlfcn.c -o dso-dlfcn.o gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c dso-dyld.c -o dso-dyld.o gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c help.c -o help.o gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c home.c -o home.o gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c java.c -o java.o gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c location.c -o location.o gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c replace.c -o replace.o gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c locks.c -o locks.o gcc -g -O2 -DOS_LINUX -DDSO_DLFCN -DCPU=\"i386\" -Wall -Wstrict-prototypes -DHAVE_LIBCAP -I/usr/java/jdk1.6.0_21/include -I/usr/java/jdk1.6.0_21/include/linux -c signals.c -o signals.o ar cr libservice.a arguments.o debug.o dso-dlfcn.o dso-dyld.o help.o home.o java.o location.o replace.o locks.o signals.o ranlib libservice.a gcc jsvc-unix.o libservice.a -ldl -lpthread -lcap -o ../jsvc make[1] ディレクトリ `/home/hoge/tmp/commons-daemon-1.0.5-src/src/native/unix/native から出ます [hoge@athlon4 unix]$ 作成されたjsvcのownerをtomcatに修正して${TOMCAT_HOME}/binにコピー /etc/init.dに起動スクリプト作成 # # source function # . /etc/init.d/functions # # That is for Tomcat-5.0.x (Apache Tomcat/5.0) # # Adapt the following lines to your configuration JAVA_HOME=/usr/java/jdk1.6.0_21 CATALINA_HOME=/opt/apache-tomcat-6.0.29 TOMCAT_USER=tomcat # for multi instances adapt those lines. TMP_DIR=/tmp PID_FILE=/var/run/jsvc.pid LOCKFILE=/var/lock/subsys/tomcat CATALINA_BASE=$CATALINA_HOME CATALINA_OPTS= CLASSPATH=\ $JAVA_HOME/lib/tools.jar \ #$CATALINA_HOME/bin/commons-daemon.jar \ $CATALINA_HOME/bin/commons-daemon-1.0.5.jar \ $CATALINA_HOME/bin/bootstrap.jar case "$1" in start) echo -n "Starting jsvc " # # Start Tomcat # $CATALINA_HOME/bin/jsvc \ -user $TOMCAT_USER \ -home $JAVA_HOME \ -Dcatalina.home=$CATALINA_HOME \ -Dcatalina.base=$CATALINA_BASE \ -Djava.io.tmpdir=$TMP_DIR \ -wait 10 \ -pidfile $PID_FILE \ -outfile $CATALINA_HOME/logs/catalina.out \ -errfile 1 \ $CATALINA_OPTS \ -cp $CLASSPATH \ org.apache.catalina.startup.Bootstrap # # To get a verbose JVM #-verbose \ # To get a debug of jsvc. #-debug \ RETVAL=$? if [ $RETVAL = 0 ]; then echo_success touch $LOCKFILE else echo_failure fi echo ;; stop) # # Stop Tomcat # $CATALINA_HOME/bin/jsvc \ -stop \ -pidfile $PID_FILE \ org.apache.catalina.startup.Bootstrap RETVAL=$? if [ $RETVAL = 0 ]; then echo_success rm -f $PIDFILE $LOCKFILE else echo_failure fi echo ;; *) echo "Usage tomcat start/stop" exit 1;; esac プロセス 上記の設定でjsvcを起動すると、オーナがrootのプロセスとtomcatのプロセスが常駐する。指定のポート番号をlistenしているのは、tomcatのプロセス。 Tomcatのクラスローダ 以下、Tomcat6の場合。 クラスローダ 対象ロケーション 説明 WEBアプリケーション WEB-INF/classes,WEB-INF/lib 他のWEBアプリケーションからは使われないクラスローダ Shared tomcat /shared/lib, tomcat /shared/lib/*.jar。 tomcat /conf/catalina.propertiesのshared.loaderに設定する。設定がなければcommonローダと同じ。 WEBアプリケーションが共用するクラスローダ Catalina tomcat /conf/catalina.propertiesのserver.loaderに設定。設定がなければcommonローダと同じ。 Tomatの実行に使用される。WEBアプリケーションから使えないクラスローダ common tomcat /lib, tomcat /lib/*.jar tomcat /conf/catalina.propertiesのcommon.loaderに設定されている。 TomcatとWEBアプリケーションの両方から使われるクラスローダ 委譲の優先順位 ブートストラップ・クラスローダ システム・クラスローダ Webアプリケーション自身のクラスローダ Commonクラスローダ Sharedクラスローダ WEBアプリケーション Tomcat /webapps下にディレクトリを作成すると、そのディレクトリ名のWEBアプリケーション(コンテキストパスがディレクトリ名)が追加される。 任意のディレクトリをWEBアプリケーションに追加するには、conf/server.xmlに以下を設定。 Server Service Engine Host Context path="/naobe" docBase="c /webapps/naobe" debug="0" reloadable="true" /Context c /webapps/naobe以下のディレクトリ構成は以下。 WEB-INF +-- web.xml +-- classes | +-- パッケージ、クラスファイル +-- lib docBaseは、Tomcatインストールディレクトリからの相対ディレクトリも指定可能。 http //localhost 8080/naobeでWEBアプリケーションを参照できる。
https://w.atwiki.jp/draemonash/pages/37.html
ここを編集 インストール (参考 http //windowss7.web.fc2.com/special/cygwin/ ) こちら より setup-x86_64.exe をインストール setup-x86_64.exe を実行しインストールする。(パッケージは必要なものだけでよい。) setup-x86_64.exe を C \cygwin に移動(パッケージの再インストールのため) .bashrc に以下を加える (XXXはユーザ名) alias cdh= cd C /Users/XXX/Desktop システム環境変数 に以下を加える。 set CYGWIN=ntsec tty set HOME=/home/kakuchan set MAKE_MODE=UNIX set SHELL=/bin/bash 完了!(環境変数 HOME の値は、 自分のホームディレクトリを指定するので、適当な値に変更してください) アンインストール cygwin フォルダ削除 regedit より以下を削除 HKEY_LOCAL_MACHINE/SOFTWARE/Cygnus Solutions HKEY_CURRENT_USER/Software/Cygnus Solutions Tips バッチシェル 実行 sh XXX.sh 注意! シェルは必ずUNIXの改行コードとすること! リダイレクト $XXX result.txt ※Windows のリダイレクト方法と同じ Grep 実行例) grep -nr ^volatile.*XXX.* C /Users/XXXXXX/Desktop/a --include= *.c 日本語使用方法 Cygwin 画面上右クリック ⇒ Options Text ⇒ Font ⇒ Select ⇒ MS ゴシック Text ⇒ Locale ⇒ ja_JP Text ⇒ Character set ⇒ UTF-8 ここを編集
https://w.atwiki.jp/myoss/pages/16.html
Tomcat関連のページ TomcatでLog4J Tomcatクラスタ構成手順 Tomcatロードバランシング設定手順 jk_connector Apache+Tomcatの連携手順
https://w.atwiki.jp/teematsu/pages/44.html
cygwinインストール パッケージの追加 rsync 転送対象を別ファイルで指定 差分転送に対する制御 rsyncでバックアップ SSH ポートフォーワーディング cygwinインストール http //cygwin.com/ パッケージの追加 上の本家からsetup.exeをダウンロード。実行。 参考。 http //desaian.bov.jp/programming/cygwin/cygwin_soft_add.html http //homepage2.nifty.com/kerota/CYG_2.htm rsync 転送対象を別ファイルで指定 rsync -r --include-from=filelist /foo /bar filelistファイルの記述方法は man rsync の FILTER RULES の節に説明がある。 1行1ルール 最初にマッチした行が有効 どれにもマッチしなければ転送対象になる。 #で始まるのはコメント マッチしたら転送対象 + パターン マッチしたら除外 - パターン パターン /abc/foo/abc にマッチ (/fooは、rsyncのコマンドラインにSRCとして指定したパス) abc/foo/abcや/foo/xyz/abcにマッチ(最後がマッチすればマッチ) /abc//foo/abc というディレクトリにマッチ (/foo/abcが通常のファイルならマッチしない) /abc/*/foo/abc/xyzや/foo/abc/123 にマッチ。ただし、/foo/abc/xyz/pqrにはマッチしない (/abcの直下にマッチ) /abc/**/foo/abc/xyzや/foo/abc/xyz/pqrにマッチ(/abc配下にマッチ) /abc/***/abc/ および /abc/** の両方を指定したのと同じ 再帰的に転送することを指定している場合(-r もしくは -aを指定している)、 /foo/a/b 配下が転送されるようにするには、/foo/aが除外されるような設定になっていてはならない。 以下の指定では、/foo/aが除外されてしまうため、/foo/a/b配下は転送されない。 + /a/b/*** - * 差分転送に対する制御 デフォルトでは、タイムスタンプとファイルサイズの両方が一致すれば、ファイルに変更なしとみなす。 ファイルに変更がなければ転送しない。 差分転送を制御するオプションとして以下がある。それらの詳細な動作・関係がよくわからない。 --ignore-times ファイルの変更チェックにタイムスタンプとファイルサイズを使わない⇒すべてのファイルを転送 --whole-files ファイル一致確認をせずにすべて転送、と読めるが、実際にはこのオプションによらず差分転送になっている気がする。 -c/--checksum --size-only rsyncでバックアップ 日本語ファイル名の文字化け、および、転送漏れ(file has vanished)を防ぐため、以下のUTF-8 Cygwinのモジュールを組み込む。 http //www.okisoft.co.jp/esc/cygwin-20.html #!/usr/bin/bash # -a archive mode # -v verbose # -z compress # --delete delte a remote file, if the local file is removed dest=user@host path/to/dest rsyncopt= -avz --delete cd /cygdrive/d/work rsync $rsyncopt src $dest 「--link-dest」を使うとディスクを節約できる http //www.itmedia.co.jp/enterprise/articles/0804/25/news034.html# SSH ポートフォーワーディング ssh -L 12345 foo.example.com 80 bar@foo.example.com ローカルの12345をfoo.example.comの80に転送 foo.example.comにログインするときのユーザーはbar 上記指定ではローカルの127.0.0.1以外のインタフェースからはフォーワーディングしてくれない場合がある。この場合は、 ssh -L mypc.example.com 12345 foo.example.com 80 bar@foo.example.com のように、フォーワード元のインタフェースアドレスを明記する。 名前 コメント